Personal Page

Overview

The Personal page is a section on your app that is about an individual shopper. It usually maps to an Account page or a Profile Page. It uses the user ID and session ID to personalize recommendations.

Details

Place your code in your fragment's initialization logic, such as onCreate.

Return Personalization

Use this code when you are requesting and serving personalized product recommendations.

Replace<placement name> with your Placement name.

Copy
Placement = new Placement(Placement.PlacementType.PERSONAL, "<placement name>");
RichRelevance.buildRecommendationsForPlacements(placement)
.setCallback(new Callback<PlacementResponseInfo>() {
@Override
public void onResult(PlacementResponseInfo result) {         
int index = 0;
for(PlacementResponse placement : result.getPlacements()) {
for(final RecommendedProduct : placement.getRecommendedProducts()) {
// Add your view init logic. The actual implementation will depend on your code.
// In this example we will assume items are rendered as TableRows in a TableView.
TableRow row = new TableRow(context);
row.setId(index);
row.addView(detailView);
index++;
tableView.addLayout(row);
}
}
}
@Override
public void onError(Error error) {
// Use this code block to handle errors
Log.e(getClass().getSimpleName(), "Error: " + error.getMessage());
}
}).execute();

Calling multiple placements

If you want to call multiple placements, simply define your placements, and pass them to RichRelevance.buildRecommendationsForPlacements() either as individual arguments or as a Collection<Placement>.

IMPORTANT: Placements must always be of the same type per request.

// This example defines placements as individual arguments.

Copy
Placement topPlacement = new Placement(Placement.PlacementType.PERSONAL, "recs_top");
Placement middlePlacement = new Placement(Placement.PlacementType.PERSONAL, "recs_middle");
RichRelevance.buildRecommendationsForPlacements(topPlacement, middlePlacement)
// Add callback logic
.execute();
Copy
// This example defines placements as an ArrayList. It is equivalent to the example above.
ArrayList<Placement> placements = new ArrayList<>(
Arrays.asList(
new Placement(Placement.PlacementType.PERSONAL, "recs_top"),
new Placement(Placement.PlacementType.PERSONAL, "recs_middle"))
);
RichRelevance.buildRecommendationsForPlacements(placements)
// Add callback logic
.execute();

Listening Mode

When you do not render personalization in your Personal screen, you must still send a tracking request using the SDK. This is required so that Algonomy can gather usage data to train your personalization models. In this specific case, you will create a listening placement. Listening placements are a special type of placement that can only log usage data without returning personalization data.

Copy
Placement placement = new Placement(Placement.PlacementType.PERSONAL);
RichRelevance.buildRecommendationsForPlacements(placement).execute();